package RapiWeb;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

/**
 *
 * @author SI-TI
 */
public class JP_Web extends JPanel {

    private JF_Principal principal;
    private JComboBox cbx_Master;
    private JComboBox cbx_Tabla;
    private JComboBox cbx_Fila;
    private JComboBox cbx_Columna;
    private JButton btn_CrearWeb;
    private JButton btn_Generar;
    private JP_Tabla p_Estructura;
    private JPanel p_Centro;
    private JTextField txt_NomControl;
    public static final int Web = 0;
    public static final int Control = 1;
    private int int_Documento;

    public JP_Web(JF_Principal principal, int tipo_clase) {
        this.int_Documento = tipo_clase;
        this.principal = principal;
        setLayout(new BorderLayout());
        addComponentes(tipo_clase);
        addEventos();
    }

    public JComboBox getCbx_Tabla() {
        return cbx_Tabla;
    }

    public JP_Tabla getP_Estructura() {
        return p_Estructura;
    }

    private void addComponentes(int tipo_clase) {
        JPanel p_Norte = new JPanel();
        JPanel p_Datos[] = new JPanel[5];
        for (int i = 0; i < p_Datos.length; i++) {
            p_Datos[i] = new JPanel();
            p_Datos[i].setLayout(new GridLayout(3, 1));
        }

        String[] str_numero;
        str_numero = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"};
        JLabel lbl_Master = new JLabel("MasterPages");
        JLabel lbl_NomControl = new JLabel("Control");
        JLabel lbl_Tabla = new JLabel("Tabla");
        JLabel lbl_Fila = new JLabel("Filas");
        JLabel lbl_Columna = new JLabel("Columnas");
        cbx_Master = new JComboBox(principal.getStr_Master());
        cbx_Tabla = new JComboBox(principal.getStr_Tabla());
        cbx_Fila = new JComboBox(str_numero);
        cbx_Columna = new JComboBox(str_numero);
        btn_CrearWeb = new JButton("Crear");
        btn_Generar = new JButton("Generar");
        txt_NomControl = new JTextField();

        JButton btn_Vacio = new JButton("  ");
        btn_Vacio.setEnabled(false);
        btn_Vacio.setBorderPainted(false);
        btn_Vacio.setOpaque(false);
        btn_Vacio.setContentAreaFilled(false);
        JButton btn_Vacio2 = new JButton("  ");
        btn_Vacio2.setBorderPainted(false);
        btn_Vacio2.setOpaque(false);
        btn_Vacio2.setContentAreaFilled(false);
        btn_Vacio2.setEnabled(false);
        
        switch (tipo_clase) {
            case Web:
                p_Datos[0].add(lbl_Master);
                p_Datos[1].add(cbx_Master);
                break;
            case Control:
                p_Datos[0].add(lbl_NomControl);
                p_Datos[1].add(txt_NomControl);
                break;
        }

        p_Datos[0].add(lbl_Tabla);
        p_Datos[0].add(btn_Vacio);
        
        p_Datos[1].add(cbx_Tabla);

        p_Datos[2].add(lbl_Fila);
        p_Datos[2].add(lbl_Columna);
        p_Datos[2].add(btn_Vacio2);
        p_Datos[3].add(cbx_Fila);
        p_Datos[3].add(cbx_Columna);

        p_Datos[4].add(btn_CrearWeb);
        p_Datos[4].add(btn_Generar);

        for (int i = 0; i < p_Datos.length; i++) {
            p_Norte.add(p_Datos[i]);
        }

        p_Centro = new JPanel();
        p_Centro.setLayout(new GridLayout(1, 2));

        add(p_Centro, "Center");
        add(p_Norte, "North");
    }

    private void addEventos() {
        btn_CrearWeb.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                p_Centro.removeAll();
                p_Centro.setVisible(false);
                p_Estructura = new JP_Tabla(principal, cbx_Fila.getSelectedIndex() + 1, cbx_Columna.getSelectedIndex() + 1);
                btn_Generar = new JButton("Generar");
                JScrollPane sp_Estructura = new JScrollPane(p_Estructura);
                p_Centro.add(sp_Estructura);
                p_Centro.setVisible(true);
            }
        });
        btn_Generar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                switch (int_Documento) {
                    case Web:
                        String str_NomWeb = (String) cbx_Tabla.getSelectedItem();
                        str_NomWeb = str_NomWeb.replace(".txt", "");
                        Clase_Web web = new Clase_Web(principal.getProyecto(), str_NomWeb, p_Estructura);
                        if (principal.getProyecto().getStr_Lenguaje().equals("Java")){
                            web.m_GenerarWebJSP();
                        }else{
                            web.m_GenerarWeb();
                        }
                        break;
                    case Control:
                        String str_NomControl = txt_NomControl.getText();
                        Clase_Componente control = new Clase_Componente(principal.getProyecto(), str_NomControl, p_Estructura);
                        control.m_GenerarControl();
                        break;
                }
            }
        });
    }
}
